Social networking systems typically use a caching system to support data requests from users. Caches store data recently retrieved from a system database. Subsequent user requests for the same data can then be routed to the caches for quick retrieval. This quick turnaround lightens the load on the system database and enhances user experience. For large social networking systems that use multiple data centers, each with multiple caches, to support data requests from millions (or even billions) of users, it is beneficial to have efficient traffic routing policies. Traffic routing policies control which data centers and/or which caches are accessed to support data requests submitted to a social networking system. Routing the data request to a particular data center and/or a particular cache in which the data is “hot” (i.e., same data has been recently stored in the particular location) can have many benefits. However, it is often difficult to design a measurable goal for tuning traffic routing policy.